package com.bedrock.project.inside.mapper;

import java.util.List;
import com.bedrock.project.inside.entity.Interviewer;
import org.apache.ibatis.annotations.Param;

/**
 * 面试官池Mapper接口
 * 
 * @author bedrock
 * @date 2020-04-08
 */
public interface InterviewerMapper 
{
    /**
     * 查询面试官池
     * 
     * @param id 面试官池ID
     * @return 面试官池
     */
    public Interviewer selectInterviewerById(Long id);

    /**
     * 查询面试官池列表
     * 
     * @param interviewer 面试官池
     * @return 面试官池集合
     */
    public List<Interviewer> selectInterviewerList(Interviewer interviewer);

    /**
     * 新增面试官池
     * 
     * @param interviewer 面试官池
     * @return 结果
     */
    public int insertInterviewer(Interviewer interviewer);

    /**
     * 修改面试官池
     * 
     * @param interviewer 面试官池
     * @return 结果
     */
    public int updateInterviewer(Interviewer interviewer);

    /**
     * 删除面试官池
     * 
     * @param id 面试官池ID
     * @return 结果
     */
    public int deleteInterviewerById(Long id);

    /**
     * 批量删除面试官池
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteInterviewerByIds(Long[] ids);

    /**
     * 新增面试官
     * 获取所有用户(暂时认为所有用户可以成为面试官)
     * @return 结果
     */
    public List<Interviewer> selectInterViewUserList();

    /**
     *  返回查询到的面试官池用户
     * @param list 用户Id集合
     * @return
     */
    public List<Long> findInterViewUserByUserIdList(@Param("list") List<Long> list);

    /**
     * 批量查询面试官的信息
     * @return 结果
     */
    public List<Interviewer> selectInterViewUserListByIds(@Param("list") List<Long> list);

    /**
     * 修改面试官的状态
     * @param interviewer
     */
    public void updateStViewatic(Interviewer interviewer);

    /**
     *  删除面试官
     * @param list
     */
    public void deleteInterviewerByUserId(@Param("list") List<Long> list) throws Exception;

}
